home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
lpmac1.arc
/
MSDOS.MLB
< prev
next >
Wrap
Text File
|
1987-02-26
|
6KB
|
195 lines
;
; This is file: MSDOS.MLB.
;
; It is an include library file containing constant
; declarations which are for use with Seattle Computer
; Products MS-DOS operating system.
;
;-------------------------------------------------------------------
;
.XCREF
;
; MS-DOS interrupt types:
;
ABORT EQU 020H ;Program abort.
FUNCTIONREQUEST EQU 021H ;Operating system function request.
RETURNADDRESS EQU 022H ;Return address for called program.
CONTROLCEXIT EQU 023H ;Address called on a CTRL-C.
FATALERROREXIT EQU 024H ;Address called on a fatal error.
ABSOLUTEREAD EQU 025H ;Direct call to I/O system read.
ABSOLUTEWRITE EQU 026H ;Direct call to I/O system write.
STAYRESIDENT EQU 027H ;Exit but stay resident.
;
; MS-DOS function types:
;
TERMINATE EQU 000h ;Program termination.
CONSOLEINPUT EQU 001h ;Get a console character.
CONSOLEOUTPUT EQU 002h ;Print a console character.
AUXILIARYINPUT EQU 003h ;Get char from auxiliary port.
AUXILIARYOUTPUT EQU 004h ;Put char out to auxiliary port.
PRINTEROUTPUT EQU 005h ;Put char out to printer port.
DIRECTCONSOLEIO EQU 006h ;Do direct console I/O.
;
OUTPUTSTRING EQU 009h ;Output a string onto console.
INPUTSTRING EQU 00ah ;Input a string from console.
CONSOLESTATUS EQU 00bh ;Check console status.
;
DISKSYSTEMRESET EQU 00dh ;Flushes all file buffers.
SETDEFAULTDRIVE EQU 00eh ;Select default disk drive.
OPENFILE EQU 00fh ;Open MS-DOS disk file.
CLOSEFILE EQU 010h ;Close MS-DOS disk file.
SEARCHFIRSTFILE EQU 011h ;Search directory for matching file.
SEARCHNEXTFILE EQU 012h ;Search directory for matching file.
DELETEFILE EQU 013h ;Delete MS-DOS disk file.
SEQUENTIALREAD EQU 014h ;Read next disk file record.
SEQUENTIALWRITE EQU 015h ;Write next disk file record.
CREATEFILE EQU 016h ;Create MS-DOS disk file.
RENAMEFILE EQU 017h ;Rename MS-DOS disk file.
;
GETDEFAULTDRIVE EQU 019h ;Get default disk drive.
SETDMAADDRESS EQU 01ah ;Set disk I/O address.
ALLOCATIONTABLE EQU 01bh ;Get current drive allocation table.
;
DISKPARAMETERS EQU 01fh ;Get parameters for current disk.
;
RANDOMREAD EQU 021h ;Read a random disk file record.
RANDOMWRITE EQU 022h ;Write a random disk file record.
GETFILESIZE EQU 023h ;Get MS-DOS disk file size.
GETFILEADDRESS EQU 024h ;Set random record to current.
SETVECTOR EQU 025h ;Set interrupt vector.
CREATESEGMENT EQU 026h ;Create a segment.
RANDOMBLKREAD EQU 027h ;Read multiple records random.
RANDOMBLKWRITE EQU 028h ;Write multiple records random.
PARSEFILENAME EQU 029h ;Parse MS-DOS disk file name.
GETCURRENTDATE EQU 02ah ;Get the current date.
SETCURRENTDATE EQU 02bh ;Set the current date.
GETCURRENTTIME EQU 02ch ;Get the current time.
SETCURRENTTIME EQU 02dh ;Set the current time.
SETVERIFYFLAG EQU 02eh ;Set disk I/O system verify flag.
getdmaaddress equ 02fh ;Get disk transfer address.
getdosversion equ 030h ;Get the dos version number.
;
handle_open equ 03dh
handle_close equ 03eh
handle_read equ 03fh
handle_write equ 040h
handle_io_ctrl equ 044h
setblock equ 04ah ;Set memory block size.
execprogram equ 04bh ;Load or execute program.
findmatchfile equ 04eh ;Find matching files.
nextmatchfile equ 04fh ;Next matching files.
;
FCB_DSECT STRUC
DRIVECODE DB ZERO
FILENAME DB ' '
EXTENSION DB ' '
CURRENTBLOCK DW ZERO
RECORDSIZE DW ZERO
FILESIZE DD ZERO
FILEDATE DW ZERO
FILETIME DW ZERO
DB 8 DUP (ZERO)
CURRENTRECORD DB ZERO
RANDOMRECORD DD ZERO
FCB_DSECT ENDS
;
DIR_DSECT STRUC
DB ZERO ;Drive
DB ' ' ;Name
DB ' ' ;Extenstion
DIRATTRIBUTES DB ZERO
DB 10 DUP (ZERO)
DIRTIME DW ZERO
DIRDATE DW ZERO
DIRFIRSTUNIT DW ZERO
DIRSIZE DD ZERO
DIR_DSECT ENDS
;
ALTERNATEFCB EQU FILESIZE
;
DATE_DSECT RECORD YEAR:7=0,MONTH:4=0,DAY:5=0
;
TIME_DSECT RECORD HOUR:5=0,MINUTE:6=0,SECOND:5=0
;
LINE_DSECT STRUC
LINEMAXIMUM DB ?
LINELENGTH DB ?
LINEDATA DB ?
LINE_DSECT ENDS
;
FILENAMELENGTH EQU OFFSET EXTENSION-OFFSET FILENAME
EXTENSIONLENGTH EQU OFFSET CURRENTBLOCK-OFFSET EXTENSION
FCBLENGTH EQU SIZE FCB_DSECT ;Length of an FCB.
;
filespeclength equ byte+filenamelength+extensionlength
LASTPARAGRAPH EQU 00002H ;Pointer to last memory paragraph + 1.
LASTADDRESS EQU 00006H ;Program segment size.
environment equ 00002ch ;Address of segment of environment.
PROGRAMPARAM1 EQU 00005CH ;Address of first parameter.
PROGRAMPARAM2 EQU 00006CH ;Address of second parameter.
PROGRAMPARAMS EQU 000080H ;Address of unformated parameters.
;
DEFAULTDMABUF EQU 000080H ;Address of default DMA buffer.
;
PROGRAMSTART EQU 000100H ;Program start address.
;
PRINTSTRINGEND EQU '$' ;Delimiter for print string.
SEQUENTIALEOF EQU 001H ;Returned in AL for EOF.
SEQUENTIALFULL EQU 001H ;Returned in AL when disk is full.
DOSERRORFLAG EQU 0FFH ;Used for indicating errors.
DEFAULTDMALEN EQU 080H ;Size of default DMA buffer.
ENDOFFILECHAR EQU 01AH ;Control Z.
;
read_only equ 001h
hidden equ 002h
system equ 004h
volume_id equ 008h
directory equ 010h
archive equ 020h
;
OPEN_FOR_READ EQU 000H
OPEN_FOR_WRITE EQU 001H
OPEN_FOR_BOTH EQU 002H
;
HANDLE_GET_INFO EQU 000H
HANDLE_SET_INFO EQU 001H
HANDLE_READ_CTRL EQU 002H
HANDLE_WRITE_CTRL EQU 003H
DRIVE_READ_CTRL EQU 004H
DRIVE_WRITE_CTRL EQU 005H
HANDLE_READ_STATUS EQU 006H
HANDLE_WRITE_STATUS EQU 007H
;
find_buf struc
find_buf_reserved db 21 dup (?) ;Reserved for MS-DOS.
find_buf_attr db ? ;Attribute found.
find_buf_time db ? ;Time for file.
find_buf_date db ? ;Date for file.
find_buf_size dd ? ;Size of file.
find_buf_fill dw ? ;Who knows?
find_buf_pname db 13 dup (?) ;Packed name.
find_buf ends
;
DOSCALL MACRO CALLTYPE,ADDRESS
IFNB <ADDRESS>
MOV DX,OFFSET ADDRESS
ENDIF
IFNB <CALLTYPE>
MOV AH,CALLTYPE
ENDIF
INT FUNCTIONREQUEST
ENDM
;
.CREF
;